﻿
/*
 * 16/04/2013: Nên Chuyển sang dùng DbSyncBatchInfo vì 
 * Khi dùng DataSet để truyền qua mạng làm tốn tài nguyên 
 * Vì bản thân DataSet khi Serializable ở dạng SOAP(XML)
 * Các ký tự text dư thừa là rất nhiều.
 * Có thể hạn chế bằng dùng Data.RemotingFormat = SerializationFormat.Binary ?(Cần test lại)
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Data;
using Microsoft.Synchronization.Data;

namespace SyncLib.Data
{
    [DataContract]
    [Serializable]
    public class KDataBatch:IDisposable
    {
        [DataMember]
        public int CurrentIndex { get; set; }
        public long DataSize { get; set; }
        [DataMember]        
        public DataSet Data { get; set; }
        [DataMember]       
        public string BatchFile { get; set; }
        public KDataBatch(DataSet ds, int index)
        {
            CurrentIndex = index;
            Data = ds;           
           
        }
        public KDataBatch()
        {
        }
        public KDataBatch Clone()
        {
            KDataBatch temp = new KDataBatch();
            temp.CurrentIndex = CurrentIndex;
            temp.DataSize = DataSize;
            temp.BatchFile = BatchFile;
            if (Data != null)
                temp.Data = Data.Copy();
            return temp;
        }


        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }
        protected virtual void Dispose(bool disposing)
        {
            if (Data != null)
                Data.Dispose();
        }
    }
}
